package com.turing.post.organization.util;

import java.math.BigInteger;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

@Remote
@Local
public interface MerchantContractBusiness {
	
	/**
	 * 创建商户合同
	 * @param webInput
	 * @param mct
	 * @throws PCPSApplicationException
	 */
	public BigInteger insertMerchantContract(PCPSWebInput webInput,
			MerchantContract mct) throws PCPSApplicationException;
	
	/**
	 * 修改商户合同
	 * @param webInput
	 * @param mct
	 * @throws PCPSApplicationException
	 */
	public void updateMerchantContract(PCPSWebInput webInput,
			MerchantContract mct) throws PCPSApplicationException;
	
	/**
	 * 删除商户合同
	 * @param webInput
	 * @param mct
	 * @throws PCPSApplicationException
	 */
	public void deleteMerchantContract(PCPSWebInput webInput,
			BigInteger mctId) throws PCPSApplicationException;
	
	/**
	 * 合同审核通过
	 * @param webInput
	 * @param mct
	 * @throws PCPSApplicationException
	 */
	public void authMerchantContract(PCPSWebInput webInput,
			BigInteger mctId) throws PCPSApplicationException;
	
	/**
	 * 合同审核未通过
	 * @param webInput
	 * @param mct
	 * @throws PCPSApplicationException
	 */
	public void unAuthMerchantContract(PCPSWebInput webInput,
			BigInteger mctId) throws PCPSApplicationException;
	
	/**
	 * 合同设置为无效申请
	 * @param webInput
	 * @param mct
	 * @throws PCPSApplicationException
	 */
	public void closeMerchantContract(PCPSWebInput webInput,
			BigInteger mctId) throws PCPSApplicationException;
	
	/**
	 * 合同延期
	 * @param webInput
	 * @param contractId
	 * @throws PCPSApplicationException
	 */
	public void merchantContractExtension(PCPSWebInput webInput, BigInteger extensionID, BigInteger extensionMonth) throws PCPSApplicationException;
}
